#ifndef SCENE_H_
#define SCENE_H_

#include <vector>
#include "object.h"
#include "light.h"
#include "camera.h"
#include "curve.h"

namespace goatgfx {

class Scene {
public:
	std::vector<Object*> objects;
	std::vector<Mesh*> meshes;
	std::vector<Curve*> curves;
	std::vector<Light*> lights;
	std::vector<Camera*> cameras;

	// nodes can be objects, lights, cameras, or just dummy nodes
	std::vector<XFormNode*> nodes;

	~Scene();
	void destroy();

	bool load(const char *fname);
	bool save(const char *fname) const;

	void draw(long msec = 0) const;
};

}	// namespace goatgfx

#endif	// SCENE_H_
